// index.js
// 获取应用实例
const app = getApp()

Page({
  data: {
    classroom: "",
    isTime: false,
  },
  // 事件处理函数

  onLoad() {
    // 定义功能开放时间
    let that = this;
    console.log("获取当前时间");
    wx.cloud.init({
      env: 'yxzclassroomquery-2e2n5pc39df1a0'
    });
    wx.cloud.callFunction({
      name: "server_now_time",
      data: {
      },
      success: res => {
        console.log("获取当前日期及时间11", res.result);
        const time = res.result;
        // 查询开放时间：2021年12月24日下午两点 —— 2021年12月27日下午两点
        let startDate = (new Date("2021", "11", "24", "14")).getTime();
        console.log(startDate);
        let endDate = (new Date("2021", "11", "27", "14")).getTime();
        console.log(endDate); 
        console.log(time.n >= startDate && time.n <= endDate);  
        if (time.n >= startDate && time.n <= endDate) {
          // 当前功能才开放，点击【确定查询】按钮有效
          that.setData({
            isTime: true
          });
        } else {
          that.setData({
            isTime: false,
          });
        }
      },
      fail: error => {
        console.log("获取时间云函数失败", error);
      }
    })
  },


  // 点击【确认查询】：校验数据+数据库查询
  formSubmit(e) {
    const that = this;
    // 查询时间到了才可
    if (that.data.isTime) {
      console.log("进入formSubmit函数", e.detail.value);
      // 获取用户的表单输入值
      const value = e.detail.value;
      // 获取姓名
      let name = value["weui-input-name"];
      name = name.trim(); // 去掉输入的前后空字符
      // 获取报考号
      let id = value["weui-input-id"];
      id = id.trim();// 去掉输入的前后空字符

      console.log(name, id);
      // 校验数据
      if (!name || !id) {
        console.log("输入不能为空");
        wx.showToast({
          title: '输入不能为空',
          duration: 2000,
          icon: "error"
        })
      } else {
        console.log("输入不为空，继续下一步校验");
        if (!/^4202\d{5}$/.test(id)) {
          console.log("报名号必须以4202开头,且必须为数字");
          wx.showToast({
            title: '报名号须为9位数字，且以4202开头',
            duration: 2000,
            icon: "none"
          })
        } else {
          console.log("输入数据格式正确");
           id = Number(id);
          // 调用查询findDataStorage函数并将结果显示
          that.findDataStorage(name, id);
        }
      }
    } else {
      // 点击【确定查询】按钮无效
      wx.showToast({
        title: '当前功能开放时间为 12月24日14:00-12月27日14:00',
        duration: 2500,
        icon: "none"
      })
    }
  },

  // 测试页面样式
  // formSubmit(e) {
  //   wx.navigateTo({
  //     url: '../query/query'
  //   });
  // },

  // 数据库查询结果 
  /* 
    输入参数：name 和 id； 
    输出：true or false ；
  */
  findDataStorage(name, id) {
    let that = this;
    let classroom = "";
    // 查询中
    wx.showLoading({
      title: '查询中',
    });
    //  初始化云函数，查询数据库中的数据
    wx.cloud.init({
      env: 'yxzclassroomquery-2e2n5pc39df1a0'
    });
    wx.cloud.callFunction({
      name: "searchClassroom",
      // 传入姓名和报名号
      data: {
        name: name,
        id: id
      }
    }).then(res => {
      console.log("searchClassroom云函数返回res", res);
      // 如果输错了报名号，res.result.data数组长度为0，要考虑此种情况
      let studentArr = res.result.data;
      // 【注意】，原来将返回的结果写在formSubmit函数里，但是发现代码会超
      // 本函数findDataStorage执行
      // 数组不为null以及长度不为0
      if (studentArr && studentArr.length !== 0) {
        let data = studentArr[0];
        // 检查数据库端:考场号、座位号以及报名号都为number，其它数据类型皆为string类型
        let kch = data["kch"].toString();
        let kcdd = data["kcdd"];
        let zwh = data["zwh"].toString();
        let namrFromdb = data["xm"];
        // 考场教室-考场号--座位号 展示
        classroom = `${kcdd.trim()} — ${kch.trim()} — ${zwh.trim()}`;
        console.log("searchClassroom云函数：classroom", classroom);
        wx.hideLoading();
        wx.navigateTo({
          url: '../query/query'
        });
        // 并且将考生信息入本地存储
        app.globalData.name = namrFromdb;
        app.globalData.classroom = classroom;
        console.log("姓名：", app.globalData.name);
        console.log("考场：", app.globalData.classroom);
      } else {
        wx.hideLoading();
        wx.showToast({
          title: '查不到您的考场信息，请确认姓名和报名号是否正确',
          duration: 2500,
          icon: "none"
        });
      }

    }).catch(console.error);

  },

  // 重置输入函数
  formReset(e) {
    console.log(e);
  },



})
